Apparatus and method for integrating applications into a computerized environment

ABSTRACT

A method and apparatus for automatically suggesting further applications to a user using an executed application in a computerized environment, comprising receiving metadata provided by the executed application; searching an index for suggested applications which receive as input the data provided by the executed application; assigning a priority for each of the suggested applications; sorting the suggested applications according to the priority; and displaying to the user a list comprising the applications that received the highest priorities.

RELATED APPLICATIONS

The present application is a Continuation application of U.S.application Ser. No. 12/485,925 filed on Jun. 17, 2009.

TECHNICAL FIELD

The present disclosure relates to computerized applications in general,and to an apparatus and method for integrating applications intoenvironments such as portals, in particular.

BACKGROUND

A portal is a computerized framework integrating information,applications, utilities and other elements. A portal usually provides anaccess point, often in the form of a web-based user interface, and isdesigned to aggregate and optionally to personalize information throughapplication-specific components, optionally referred to as portlets. Aportal may be a publicly available portal, or an enterprise-portal,intended only for the enterprise employees and associates.

A common problem associated with maintaining a portal relates to theaddition of new applications, and sometimes also to the enhancement ofexisting applications. The new or enhanced applications have to be madeaccessible from the existing graphic user interface (GUI), and should beconnected to the relevant contents.

For example, if a Geographic Information System (GIS) is added to anexisting system, it should be made available to all relevantapplications, such as employee directory in order to present the addressof a current employee, a store location page in order to show the storelocations on a map, or the like.

Thus, some association has to be made between the new application andeach of the relevant existing ones, including remotely relevant ones.

Further, the added application should be activated with the relevantinformation, such as the address of the employee, a relevant part numberin a warehouse management application, or the like.

Another aspect of the problem is that often, the real-estate, i.e., theavailable display area or the relevant part thereof is already fullyused, and the addition of a new control for activating the newapplication may necessitate the evacuation of another one. A similarsituation may occur when the number of available applicationsoutperforms the available display area. In yet another situation, thedisplay area may be too loaded for a user to even notice the newlyavailable application.

Thus, new and useful applications may go unnoticed by users, who aretherefore not getting the benefits of the development efforts investedby the organization.

All the abovementioned problems increase the Total Cost of Development(TCD) and also the Total Cost of Ownership (TCD) of applications in aportal. Experience demonstrates that sometimes more significantresources are required for integrating a new application in anenvironment than those required for the development of the application.

There is thus a need in the art for a method and apparatus forintegrating new or enhanced applications into complex environments suchas portals. The method and apparatus should enable such integration atminimal manual work, both on the connectivity between the newapplication and the existing ones, and on the user interface of theintegration.

SUMMARY

A method and apparatus for suggesting relevant application to usersusing a first application. The method and apparatus enable the users toget to know additional applications, and invoke them with the relevantparameters as retrieved from the first application. Matching theapplication is done according to the meta data provided or consumed bythe application, and the actual data or parameters are converted ifrequired.

In accordance with a first aspect of the disclosure, there is thusprovided a method for automatically suggesting one or more applicationto a user using an executed application in a computerized environment,comprising: receiving data provided by the executed application;searching an index for one or more suggested applications which receivemetadata provided by the executed application; and displaying to theuser the at least one suggested application, using the data provided bythe executed application. The method can further comprise receivingmetadata provided by the executed application. The method can furthercomprise filtering the suggested applications according to permissionsof the user. The method can further comprise converting data provided bythe executed application to data received by any of the suggestedapplications. The method can further comprise activating any of thesuggested applications with data provided by the executed application.Within the method the environment is optionally a portal. Within themethod, the data provided by the executed application is optionally userdata or application data. The method can further comprise: indicatingthe metadata provided by the executed application; indicating themetadata received by any of the suggested applications; and registeringthe executed application and the suggested applications with the index.The method can further comprise providing a conversion from the dataprovided by the executed application to data received by any of thesuggested applications. The method can further comprise assigning apriority for each of the suggested applications; and sorting thesuggested applications according to the priority, wherein the suggestedapplications are displayed to the user sorted in descending priorityorder. The method can further comprise converting the data provided bythe executed application to data received by the suggested applicationshaving highest priority assigned.

Another aspect of the disclosure relates to an apparatus forautomatically suggesting further applications to a user of an executedapplication in a computerized environment, comprising: apparatus forautomatically suggesting further applications to a user of an executedapplication in a computerized environment, comprising: a detection panelfor communicating with the executed application; an application matchingservice for selecting one or more suggested applications by matchingmetadata provided by the executed application with metadata received byany of the suggested applications; a provided data extraction componentfor extracting data provided by the executed application; and a userinterface component for displaying to the user on a display device alist comprising the suggested applications, using the data provided bythe executed application. The apparatus can further comprise a filteringcomponent for filtering the suggested applications in accordance withuser privileges. The apparatus can further comprise a parameterconversion component for converting data provided by the executedapplication to data received by any of the suggested applications. Theapparatus can further comprise an activation component for activatingany of the suggested applications with the data provided by the executedapplication. Within the apparatus, the environment is optionally aportal. Within the apparatus, the data provided by the executedapplication is optionally use data or application data. The apparatuscan further comprise an index comprising information required forassociating the executed application with each of the suggestedapplications. The apparatus can further comprise a content repositoryfor storing data related to the executed application, data related to atleast one suggested applications, or a conversion between data providedby the executed application and data received by any of the suggestedapplications. The apparatus can further comprise an index registrationcomponent for registering the executed application and the suggestedapplications with the index. The apparatus can further comprise a weightdetermination component for associating a priority with each of thesuggested applications; and a sorting, component for sorting thesuggested applications, wherein the suggested applications are displayedto the user sorted in descending priority order. The apparatus canfurther comprise a parameter conversion component for converting dataprovided by the executed application to data received by any of thesuggested applications, having highest priority assigned.

Yet another aspect of the disclosure relates to a method forautomatically suggesting further applications to a user using anexecuted application in a computerized environment, a suggestedcomputerized application, comprising: receiving data provided by theexecuted application; searching an index for one or more suggestedapplications which receive metadata provided by the executedapplication; filtering the suggested applications according topermissions of the user; assigning a priority for each of the suggestedapplications; sorting the suggested applications according to thepriority; converting the data provided by the executed application todata received by any of the suggested applications; displaying to theuser a list comprising at least some of the suggested applications,having, highest priority, using the data provided by the executedapplication; and activating any of the suggested applications with thedata provided by the executed application.

Yet another aspect of the disclosure relates to a tangible computerreadable store medium containing a set of instructions for a generalpurpose computer, the set of instructions comprising: receiving dataprovided by the executed application; searching an index for one or moresuggested applications which receive metadata provided by the executedapplication; displaying to the user a list comprising, the suggestedapplications, using the data provided by the executed application.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure will be understood and appreciated more fullyfrom the following detailed description taken in conjunction with thedrawings in which corresponding or like numerals or characters indicatecorresponding or like components. Unless indicated otherwise, thedrawings provide exemplary embodiments or aspects of the disclosure anddo not limit the scope of the disclosure. In the drawings:

FIG. 1 is an illustrative screen shot of a first embodiment of a portalsuggesting added applications in accordance with the disclosure;

FIG. 2 is an illustrative screen shot of a second embodiment of a portalsuggesting added applications in accordance with the disclosure;

FIG. 3A is a flow chart of the main steps in a method for integrating anapplication with an environment, in accordance with the disclosure;

FIG. 3B is a flow chart of the main steps in a method for suggestingapplications within an environment, in accordance with the disclosure;and

FIG. 4 is a block diagram of the main components in an apparatus forapplication integration in accordance with the disclosure.

DETAILED DESCRIPTION

An apparatus and method for offering to a user of a computerized systemadditional applications in a context aware manner.

A typical portal may comprise hundreds or thousands of applications.Therefore, a user can usually not follow and know all availableapplications. It is thus beneficial to suggest to the user one or moreapplications which can be of help, and which he may or she have not usedbefore. The applications are suggested to the user at the right context,in an easy to use manner.

In some embodiments of the disclosure, the environment comprises anapplication matching service, which monitors the data available incurrently active applications, and determines one or more applicationsthat receive or require as input the available data. The relevantapplications are optionally sorted according to priority, and for themost appropriate ones the data provided by the executed application,i.e., the context, is passed from the executed application to thesuggested application, and optionally converted into data format asrequired by the suggested application. The user can then select any ofthe suggested applications, which is thus activated with the relevantdata.

The apparatus and method suggest to a user one or more applicationswhich are appropriate under the current circumstances. Theconsiderations as to which applications are to be suggested include: theidentity or role of the user; the applications the user is currentlyusing; the other available applications; organization policy, such asdesire to encourage users to experience with a new application; usersindications and past decisions; application rating as indicated by thesame user or by other users, or the like.

In order to determine which applications are to be suggested to a user,for each available application the metadata received as input andrequired formats, and the metadata that can be supplied by currentlyexecuted applications are matched. Therefore, in order to be integratedinto the system, the metadata received or required by each application,as well as metadata an application makes available to other applicationsis indicated, so that the application matching service can consider themetadata provided by a currently executed application, user data, orothers, and the metadata received by applications to be suggested. Theexecuted application sends the actual data it holds to the suggestedapplication according to matches of the meta data. For example, ifapplication A holds a “part number” field, and the suggested applicationB receives a “part number”, then application B will be matched and canbe suggested when application A is executed. If in a particularexecution of application A the available part number has the value of“1001”, this particular number is provided to application B whenapplication B is suggested and activated.

It will be appreciated that the data provided by an executed applicationis not limited to data explicitly output by the application such ascalculation results, but also to data available to the application, suchas part number for which the application shows information.

For example, a warehouse application makes available, among others, thename or ID of a person who ordered a particular part, and the addressesof the manufacturers. Then, when the warehouse application is used, aGIS application may be suggested showing the addresses of themanufacturers, or a contact application showing the details of theperson that ordered the particular part.

Since the display area may be too small to show all appropriateapplications, and since it is generally desirable to emphasize the moreappropriate applications, the matched applications may be sortedaccording to a priority of precedence order, which may be determined bythe system or influenced by an administrator. The current user'spreferences and other users' preferences and rating may also beconsidered.

In order to use the relevant applications, optionally one or moreparameter mappings or conversion, for mapping input parameters havingreasonable or known format into a format required by a suggestedapplication are also provided and performed.

For example, suppose a Geographic Information System (GIS) applicationconsumes input in the format of longitude and latitude coordinates.Therefore, parameter mappings will be defined for converting from anaddress, i.e. country, city, street and number combination intolongitude and latitude coordinates, and from a degrees-minutes-secondsformat into the longitude and latitude coordinates. Then, when anyapplication is active, which can supply a location in the form of anaddress, in the form of a degrees-minutes-seconds combination, or in alongitude and latitude format, a GIS application may be suggestedpresenting that location.

In another example, a warehouse application can receive input in a formof a part number, in a form of a manufacturer ID, in a form of a serialnumber in a shipment ID, or others. The output will be the details ofthe part having the part number, the manufacturer details, or theshipment details, respectively. Each of these inputs can be received inone or more formats. If more than one input form exists for any of theseparameters received by an application, parameter mapping can be definedfor converting additional formats into the required format. For example,if the warehouse application receives a part number in a general formatas used by the manufacturer, a parameter mapping can be defined forconverting the internal part number into the general format.

The parameter conversion or mapping can use any arithmetic operation,business logic such as accessing a database, one-to-one conversion incases in which the available data is in the required format, or thelike. It will be appreciated that a sequence of conversions may beapplied in order to transform a given output to a needed input. Forexample, an address field output may be converted to a Zip code, whichis in turn converted to longitude and latitude in order to be used by aGIS.

Optionally, in order to save resources and perform more efficiently, theparameter conversion is performed only for the applications having thehighest priority.

Once the relevant applications are suggested, the user can select anyone or more of the suggested applications. If and when the useractivates any of the suggested applications, the application mayefficiently start with the relevant data loaded.

Referring now to FIG. 1, showing a schematic illustration of a screenshot of an application, in accordance with an embodiment of thedisclosure.

The screen, generally referenced 100 optionally shows a window or pane104 of the currently active application, and a window, pane or anotherarea 108. Area 108 show a list of relevant applications that can beinvoked by pointing pressing or otherwise indicating the application.

Area 104 shows a data sheet of a component named “ABC”, including itsdetails, bill of material, classification, manufacturer, and an image ofthe component.

Area 108 enables the user to select an application out of the followingapplications: previews 112, showing graphs of frequently required data,such as stock levels; query view 112 providing a user interface forconstructing queries related to component “ABC”; and GIS application120, for showing a map of 1500 First Street, My City, My State, which isthe address of the manufacturer as indicated in area 132. The selectedapplication is then presented in the lower part of area 108, in aseparate window, or the like. The user can then select any other of thesuggested applications.

It will be appreciated that if a user selects another tab of tab list124, other options may be displayed in area 108, which are relevant tothe data that will be shown in area 104 once the other tab is selected.

Referring now to FIG. 2, showing a schematic illustration of a screenshot of an application, in accordance with another embodiment of thedisclosure.

As in FIG. 1, the screen shot shown in FIG. 2 also comprises area 104showing; the currently active application, and area 208 for the proposedapplications. Area 208 comprises a tab control 240, having the tabs of“Previews”, “Query Views”, and “GIS”.

When any of tabs in tab control 240 is selected, the relevantapplication is shown in area 208. Thus, when “Previews” tab is selected,previews of graphs relevant for component “ABC” are presented, such asstock overview graph 244, “where used” table 248, “Quality issues” graph252 and possibly others.

Referring now to FIG. 3A, showing the main steps in a flowchart forintegrating an application with an environment, in accordance with thedisclosure.

On step 300 an application is created or enhanced. The application canbe implemented as one or more executables, libraries, web pages,applets, portal components, portlets, Flash movies, Adobe forms, or thelike.

On optional step 304, either before or after the application is fullydeveloped, but after its inputs and outputs are known, the metadataprovided by the application and how it is retrieved, is indicated. Itwill be appreciated that multiple data items of multiple metadata typescan be provided by each application at each state. For example, awarehouse application can provide metadata and data related to a currentpart, manufacturer details, general stock status and others.

On optional step 308 the metadata received b the application isdetermined. It will be appreciated that an application can be evokedwith multiple types of metadata, and each such metadata can havemultiple formats.

If step 308 is performed, i.e., if the application is to be triggered byanother application, then on optional step 312 parameter mapping isdefined for converting one or more known formats of the metadatareceived by the application, into the format acceptable by theapplication. For example, if the newly created or enhanced applicationis a GIS application, then the application may accept location indicatedas a combination of longitude and altitude. Then, conversion may bedefined for converting a logical address into a longitude and altitudecombination, a degree-minute-second combination into a longitude andaltitude combination, or the like.

It will be appreciated that the conversion can require any operation,including arithmetic or logic operations, business logics such asretrieving data from a database, one-to-one conversions such as when alocation is already given as a longitude and altitude combination, orthe like, or a sequence of two or more conversions.

It will be appreciated that either step 304 or steps 308 and 312 have totake place for any application, in order to integrate the applicationinto an environment in accordance with the disclosure. Thus, eachapplication can serve as a trigger for suggesting another application,evoked as a result of another application being active, or both.

On step 316 the application registers itself with an index, and updatesa content repository with the required input, provided outputs, orparameter conversions. The index and repository can be implemented asone or more databases or database tables, one or more files such as textfiles or XML files, or in any other format.

Referring now to FIG. 3B, showing the main steps in a flowchart forsuggesting applications within an environment.

On step 324 data or metadata is extracted from an executed application,such as its provided output, user information such as ID, role,permissions and others, and additional data. The metadata can include,for example the business objects, such as views, roles or others beingexecuted by the executed applications and their operations, theirrespective Remote Function Calls (RFCs), service calls, or transactions.The information can be provided by the application through accessing adedicated service such as a dedicated application, or by a serviceaccessing the application through an Abstract Program Interface (API),or via any other communication protocol.

On step 328, the index and database are searched for relevantapplications, i.e., applications which receive as input metadata whichis provided as output by any of the executed applications or theirobjects. Also considered are applications which receive metadata thatcan be provided by the executed application using any of the availableparameter conversions. If the executed application was not registeredwith the index, no information regarding its provided metadata isavailable. In such cases metadata information optionally extracted onstep 324 may be used for matching.

On step 332 the relevant applications are filtered according, to theuser's permissions, i.e., applications which can not be used by a userhaving insufficient permission will be excluded.

On optional step 336 the resulting applications which are relevant andwhich the user has sufficient permissions for, are assigned a weight orpriority indication, and sorted. The priority can be determined based onthe following data: an importance indication associated with theapplication, which can be granted by the application developer, anadministrator, or the like, the importance indication may change overtime, for example a new application may receive higher importance toensure it is exposed to potential users for at least a number of timesor a certain period of time; a preference factor associated with theapplication based on multiple users' preferences, for example amultiplicity of users using the application repeatedly may increase therelative weight of the application; the number and frequency of timesthe user has used the application, for example if the user used theapplication a few times in the past but then stopped, the applicationmay receive a lower factor; the resources consumed by the application;and the specific user's preferences, such as an explicit indication thatthe user wants to use the application, a specific indication that theuser does not want to use the application, the user using theapplication repeatedly, or the like.

It will be appreciated that any one or more of the abovementionedfactors can be integrated into a weight to be associated with theapplication. Further, one or more factors, such as the user's explicitindication can override all other factors.

This step is optional, since if only a small number of applications issuggested, for example under a predetermined threshold, then allapplications can be presented without prioritizing or sorting.Preparation step 340 is performed for a predetermined number, N, ofapplications receiving the highest priorities, wherein N is the numberof applications that can be presented and suggested to the user. N canbe hardcoded, derived from the available screen space, depend on user'spreferences, an administrator's configuration, or the like.

For each of the N applications that received the top scores, on step 344the extracted data is converted to the required input, using anappropriate parameter converter. On step 348, if no conversion is foundwhich can convert the actual data provided by the executed applicationto the data received by the suggested application, then the applicationis removed from the collection, and another application that received alower score is added.

On step 352 the option to activate any of the top N applications isdisplayed to a user, and on step 356, upon user selection, the one ormore applications selected out of the top N applications are activatedwith the relevant parameters as optionally converted.

Referring now to FIG. 4, showing a block diagram of the main componentsin an apparatus for application integration in accordance with thedisclosure.

The apparatus comprises a detecting panel 400, which is an applicationor a service executed by a computing platform. Panel or application 400communicates with applications and objects 404 executed by the computingplatform, in order to enable search for additional applications orservices that can be suggested to provide additional functionality tothe user. The communication between panel 400 and applications andobjects 404 can be performed via any communication protocol, and can beinitiated by either panel 400 or by applications 404.

Panel 400 optionally receives information from the executed applicationsand objects, and communicates it to application matching server 408.Application matching server 408 searches index 412 for applications thatreceive as input the metadata that can be provided by any one or more ofexecuted applications 404. The metadata provided by executedapplications 404 can be detected either by searching the index, if anyof applications 404 or objects thereof had been registered with theindex, or by panel 400 communicating with the application and searchingfor known types of metadata such as “part number”.

Index 412 communicates with, or is a part of content repository 416which contains the inputs received by each application, the metadataeach application can make available to other applications, and relevantparameter conversion utilities.

Application matching service 408 provides a collection of one or moreapplications out of all applications registered with index 412 andrepository 416.

The application collection is received by application suggestioncomponents 420, which generates a list of the N (or less) mostpreferable applications to be suggested to the user under the currentcircumstances, wherein N is hard coded, configurable by anadministrator, set by a user, determined according to the availabledisplay area, a combination of the abovementioned factors, or determinedin any other way.

Application suggestion components 420 communicates with provided dataextraction component 418 which extracts the actual data from theexecuted application, which is required for any of the suggestedapplications.

Application suggestion components 420 include priority determinationcomponent 424 which assigns a weight or priority for each appropriateapplication, based on organization policy, application rating asprovided by the user or by other users, level of correspondence betweenthe currently executed application and the suggested application, userdecision, or the like.

Filtering component 428 is designed for filtering the applications thatare not permitted to be used by the particular user, due for example toinsufficient privileges.

Optional sorting component 430 is responsible for sorting the suggestedapplications according to the weights assigned by weight determinationcomponent 424. Sorting component 430 can also provide higher priorityand thus higher precedence to an application, based on the user'sconfiguration.

Application suggestion components 420 further comprise parameterconversion component 432, for converting the data or parameters assupplied by with provided data extraction component 418 into the inputas received by the suggested application, using a sequence of one ormore conversions. If no conversion exists, the application is removedfrom the application collection and replaced by another one. In someembodiments, parameter conversion is performed only for the applicationsthat received the highest priority values, and which are suggested tothe user. There is no need to convert the parameters for theseapplications that received low priority and will not be suggested.

Activation and data transfer component 436 is responsible fortransferring the relevant data required for activating any of suggestedapplications 444 which is selected by a user. The data may includegeneral data, such as location for a GIS system, as well as user datarequired for determining the application's operation, including user 1D,user role, enabled options, or the like.

Application suggestion components 420 further comprise one or more userinterface components 440 which may include graphic user interface,textual user interface, remote activation user interface or the like.

The apparatus further comprises application registration component 448for registering a new or enhanced application 452, or an existingapplication when the method is deployed, with the apparatus. Inregistration, the metadata provided by the application and/or metadatareceived by an application is registered and stored within index 412 andcontent repository 416. After registration, application 452 can triggerthe suggestion of another application, be suggested when anotherapplication is executed, or both.

It will be appreciated that the components of the apparatus (excludingindex 412 and repository 416) are interrelated sets of computerinstructions, arranged as executables, libraries, web pages, portals orother units designed to be executed by a computing platform such as ageneral purpose computer, a personal computer, a mainframe computer, aserver, a mobile device, or any other type of computing platformprovisioned with a memory device, a CPU or microprocessor device, andI/O ports. Alternatively, the disclosure can be implemented as firmwareported for a specific processor such as digital signal processor (DSP)or microcontrollers, or can be implemented as hardware or configurablehardware such as field programmable gate array (FPGA) or applicationspecific integrated circuit (ASIC).

Repository 416 can be implemented as a database stored on a mass storagedevice, for example an optical storage device such as a CD, a DVD, or alaser disk; a magnetic storage device such as a tape, a hard disk,Storage Area Network (SAN), a. Network Attached Storage (NAS), orothers; a semiconductor storage device such as Flash device, memorystick, or the like. Repository 416 can comprise a single or multiplestorage devices. Repository 416 may be located on premise, or in aremote location and accessed on demand, using for example the internetas a cloud service. Index 412 can be implemented as a database table, atext file, an HTML file, or the like.

The suggested applications are displayed to a user on a display device,such as a screen, and may be activated using a pointing device such as amouse, keyboard, joystick, touch screen, or the like.

It will also be appreciated that the disclosed apparatus, andparticularly index 412 and repository 416 can be common and accessed byMultiple computing platforms used by multiple users. For example theapparatus can be executed by one or more servers, which receiveindications for applications performed on client platforms.

The disclosed method and apparatus is a specific case of a top-Nrecommendation problem. In the disclosed situation, data about the useris available, such as identity, role, references or other, as well asconnectivity information between the currently used applications and thesuggested applications, so that the data provided by any of thecurrently used applications is used as input for the suggestedapplications.

The disclosed method and apparatus automatically integratedata-providing applications with data-consuming applications, withouthaving to specifically link any two applications. Rather, when thecircumstances are such that an application can be suggested, it may besuggested, depending also on precedence considerations, without the useror an administrator directly associating the two applications. Further,the suggested application, if selected, will start with the relevantdata already loaded.

The disclosed method and apparatus can be used in an environment inwhich the available applications and the display area they requireoutnumber the available display area, so there is a need to select andsuggest those applications that are more likely to appeal to the user.Such environments can include portals, business client desktopapplications, mobile devices, or others.

It will be appreciated that the disclosed apparatus and methods areexemplary only and that further embodiments can be designed according tothe same guidelines and concepts. Thus, different, additional or fewercomponents or steps can be used, different steps or components can beconsolidated or split into separate ones.

It will be appreciated by a person skilled in the art that the disclosedapparatus is exemplary only and that multiple other implementations canbe designed without deviating from the disclosure. It will be furtherappreciated that multiple other components and in particular extractionand analysis engines can be used. The components of the apparatus can beimplemented using proprietary, commercial or third party products.

It will be appreciated by persons skilled in the art that the presentdisclosure is not limited to what has been particularly shown anddescribed hereinabove. Rather the scope is defined only by the claimswhich follow.

What is claimed is:
 1. A method for automatically suggesting at leastone application to a user using an executed application in acomputerized environment, comprising: extracting from the executedapplication data associated with the execution of the executedapplication, thereby obtaining data provided by the executed applicationby extraction therefrom; searching an index for an at least oneapplication as a suggested application identified as requiring as inputdata from the data provided by the executed application; converting dataprovided by the executed application to data received by the at leastone suggested application; displaying to the user the at least onesuggested application; and registering the executed application and theat least one suggested application with the index.
 2. The method ofclaim 1 further comprising receiving metadata provided by the executedapplication.
 3. The method of claim 1 further comprising filtering theat least one suggested application according to at least one permissionof the user.
 4. The method of claim 1 further comprising activating theat least one suggested application with data provided by the executedapplication.
 5. The method of claim 4 wherein the data provided by theexecuted application is user data or application data.
 6. The method ofclaim 1 wherein the environment is a portal.
 7. The method of claim 1further comprising: indicating the metadata provided by the executedapplication; and indicating the metadata received by the at least onesuggested application.
 8. The method of claim 7 further comprisingproviding a conversion from the data provided by the executedapplication to data received by the at least one suggested application.9. The method of claim 1 further comprising: assigning a priority foreach of the at least one suggested applications; and sorting the atleast one suggested application according to the priority, wherein theat least one suggested application is displayed to the user sorted indescending priority order.
 10. The method of claim 9 further comprisingconverting the data provided by the executed application to datareceived by the at least one suggested application, having highestpriority assigned.
 11. A computerized hardware apparatus forautomatically suggesting further applications to a user of an executedapplication in a computerized environment, comprising: a detection panelfor communicating with the executed application; an application matchingservice for selecting at least one suggested application identified asrequiring as input data provided by the executed application; a provideddata extraction component for extracting data operable by and providedby the executed application; a parameter conversion component forconverting data provided by the executed application to data received bythe at least one suggested application; a display device; a userinterface component for displaying to the user on the display device alist comprising the at least one suggested application, requiring dataprovided by the executed application; and an index registrationcomponent for registering the executed application and the at least onesuggested application with an index.
 12. The apparatus of claim 11further comprising a filtering component for filtering at least onesuggested applications in accordance with user privileges.
 13. Theapparatus of claim 11 further comprising an activation component foractivating the at least one suggested application with the data providedby the executed application.
 14. The apparatus of claim 11 wherein theenvironment is a portal.
 15. The apparatus of claim 11 wherein the dataprovided by the executed application is user data or application data.16. The apparatus of claim 11 wherein the index comprises informationrequired for associating the executed application with each of thesuggested applications.
 17. The apparatus of claim 11 further comprisinga content repository for storing data related to the executedapplication, data related to the at least one suggested applications, ora conversion between data provided by the executed application and datareceived by the at least one suggested application.
 18. The apparatus ofclaim 11 further comprising: a weight determination component forassociating a priority with each of the at least one suggestedapplication; and a sorting component for sorting the at least onesuggested applications, wherein the at least one suggested applicationis displayed to the user sorted in descending priority order.
 19. Theapparatus of claim 18 wherein the parameter conversion componentconverts data provided by the executed application to data received bythe at least one suggested application, having highest priorityassigned.
 20. A tangible non-transitory computer readable store mediumcontaining a set of instructions for a general purpose computer, the setof instructions comprising: extracting from the executed applicationdata associated with the execution of the executed application, therebyobtaining data provided by the executed application by extractiontherefrom; searching an index for an at least one application as asuggested application identified as requiring as input data from thedata provided by the executed application; converting data provided bythe executed application to data received by the at least one suggestedapplication; displaying to the user a list comprising the at least onesuggested application; and registering the executed application and theat least one suggested application with the index.